Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New Thompson cloud fraction (updated subroutine cal_cldfra3) #781

Merged
merged 25 commits into from
Dec 10, 2021

Conversation

gthompsnWRF
Copy link
Collaborator

@gthompsnWRF gthompsnWRF commented Nov 16, 2021

This pull request incorporates a Thompson cloud fraction scheme (which is a heavily updated cal_cldfra3 introduced in HWRF in 2015) to improve representation of fractional cloud amounts in areas without explicit (microphysics grid-scale) clouds. Not only is cloud fraction improved to contain numerous grid cells greater than zero and less than one, but the RRTMG scheme then "sees" these 'partly cloudy' grid boxes to improve radiation. The details of the need of "boosting" clouds beyond what is captured solely in the microphysics scheme was reported by the [Developmental Testbed Center's HFIP project in 2015].(https://github.com/NCAR/ccpp-physics/files/7557574/HFIP_GT2014Dec17.pdf)

Generally no microphysics scheme is capable of handling sub-saturated grid volumes to produce explicit cloud water and ice which is why the GFDL microphysics scheme has its own "cld_amt" that produces non-zero values where the grid volumes are near yet not at saturation. So when switching to the Thompson microphysics from GFDL, one should assume that some similar treatment is logical and sensible.

Besides the changes to the direct code calculating the cloud fraction, a number of helpful 2D (x,y) diagnostics are created to assist others with the contributions by the new code additions and to utilize them for further developments regardless of cloud fraction or microphysics schemes used.

A set of 3 simulations from 20200105/00z start time is provided in graphics using the following...

  1. Original subroutine progcld6 and Thompson-MP (candidate version for GFSv17-prototype8)
  2. New subroutine progcld_thompson with same Thompson-MP as above
  3. Original subroutine progcld6 with changes to Thompson-MP following PR #778 using D0s=300, D0g=350, and crt_sati=0.0

Another set of 3 simulations from 20190719/18z start time is provided in graphics using these powerpoint files...

  1. Original subroutine progcld6
  2. New subroutine progcld_thompson
  3. Original subroutine progcld6 with changes proposed in #778

A set of graphics from each simulation is included (in powerpoint files) to make visual comparisons of the differences - quantitative differences are being prepared. Of particular note is that more outgoing shortwave radiation (cloud reflectance) and generally lower outgoing longwave/IR (corresponding with more high clouds) occurs using either of the last 2 configurations. In other words, both code changes are capable of producing more ice clouds - primarily in the tropics and mid-latitudes. HOWEVER, the sole reason for more ice in simulation-3 is a change to initiate ice at relative humidity with respect to ice at exactly 100% whereas the Thompson microphysics was explicitly designed NOT to produce ice at RH-ice=100% because of the near total glaciation of clouds (due to the Bergeron-Wegener-Findeisen process) with this choice. As such, the impact to cloud phase from having some supercooled liquid water present to having very little is a major step backwards for forecasts of aviation icing hazards aloft and at the surface (freezing rain and freezing drizzle). Numerous papers in the literature show a distinct lack of supercooled liquid water in global weather models (e.g., Ma et al. 2014 and many papers related to the SOCRATES field experiment) in addition to the plethora of papers in the literature that show ice does not initiate at RH-ice=100%, but, rather at much higher supersaturations with respect to ice, often near water saturation (cloud chamber studies in Germany among many others).

@gthompsnWRF
Copy link
Collaborator Author

gthompsnWRF commented Nov 18, 2021

Below are some graphics showing some quantitative differences 20190719 case using experiment 2 minus experiment 3 for outgoing longwave and shortwave radiation and total-sky albedo. The graphics clearly show the rather large increase in reflective clouds (thus less shortwave reaching the ground) and far less overall longwave IR (meaning colder clouds), particularly in the tropics

Diff of outgoing longwave...
20190719_ncdiff_lwupt

Diff of outgoing shortwave...

20190719_ncdiff_swupt

Diff of albedo...

20190719_ncdiff_albedo

@gthompsnWRF
Copy link
Collaborator Author

Below are some graphics showing some quantitative differences 20200105 case using experiment 2 minus experiment 3 for outgoing longwave and shortwave radiation and total-sky albedo. The graphics clearly show the rather large increase in reflective clouds (thus less shortwave reaching the ground) and far less overall longwave IR (meaning colder clouds), particularly in the tropics

Diff of outgoing longwave...

20200105_ncdiff_lwupt

Diff of outgoing shortwave...

20200105_ncdiff_swupt

Diff of albedo (total-sky)...

20200105_ncdiff_albedo

Copy link
Collaborator

@climbfuji climbfuji left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is some confusion around which vertical dimension to use, and I tried - within the limited abilities of GitHub comments and the limited time - to explain that. Most radiation quantities are allocated to length lmk, and if instead lm gets used then several model configurations in the UFS and other models (NEPTUNE) will stop functioning.

There is one example (cldfra) where I need to do a few more checks on what it should really be. Metadata says lmk, but the allocation in GFS_typedefs.F90 is lm.

For now, you don't need to make any changes, I will send you changes in form of a PR early tomorrow morning.

physics/GFS_rrtmg_pre.F90 Outdated Show resolved Hide resolved
physics/GFS_rrtmg_pre.F90 Outdated Show resolved Hide resolved
physics/GFS_rrtmg_pre.F90 Outdated Show resolved Hide resolved
physics/GFS_rrtmg_pre.F90 Outdated Show resolved Hide resolved
physics/GFS_rrtmg_pre.F90 Outdated Show resolved Hide resolved
physics/GFS_rrtmg_pre.meta Outdated Show resolved Hide resolved
physics/GFS_rrtmg_pre.meta Outdated Show resolved Hide resolved
physics/GFS_rrtmg_pre.meta Outdated Show resolved Hide resolved
physics/GFS_rrtmg_pre.meta Outdated Show resolved Hide resolved
physics/radiation_clouds.f Outdated Show resolved Hide resolved
physics/radiation_clouds.f Outdated Show resolved Hide resolved
@ericaligo-NOAA
Copy link
Collaborator

There is a desire to unify the 3D instantaneous cloud fraction diagnostic. Currently, cldfra is being output to the raw history files, and a decision has been made to change this to cld_amt. Should this change be made as part of this PR or should it be a separate PR?

@climbfuji
Copy link
Collaborator

There is a desire to unify the 3D instantaneous cloud fraction diagnostic. Currently, cldfra is being output to the raw history files, and a decision has been made to change this to cld_amt. Should this change be made as part of this PR or should it be a separate PR?

Would cld_amt in this case be treated as in GFDL-MP, i.e. as a tracer in the tracer array that is not advected/diffused, or would it be treated differently?

@ericaligo-NOAA
Copy link
Collaborator

ericaligo-NOAA commented Nov 23, 2021 via email

@climbfuji
Copy link
Collaborator

I am ok with reusing icloud = 3 for the new Thompson cloud scheme, but note the suggested changes in PR #780 - these remove icloud = 3 completely, in places that you touched (physics/GFS_rrtmg_pre.F90) but also in others (physics/radiation_clouds.f). You may want to check if the suggested changes in PR #780 align with your changes. I think they fit nicely, but we need to double check. Adding @mzhangw and @mjiacono for their awareness.

@mzhangw
Copy link
Collaborator

mzhangw commented Nov 23, 2021 via email


endif ! icloud == 3

if (lextop) then
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since both of us removed the lines of code above here related to icloud=3, then I think you should remove the next 2 chunks that are handling only the lyb layer as equal to lya layer. I no longer think those lines are relevant since there is nothing inside the cldcov array at this point. That is why I also removed it.

If I am incorrect, then my PR needs changing to put these back. Does something prior to this subroutine already pre-popluate those arrays?

@climbfuji
Copy link
Collaborator

@gthompsnWRF we didn't add the logic to use the six new diagnostic variables only if a corresponding debug switch is enabled. I think we should do that to reduce the memory footprint. If those variables are only of interest if Thompson MP and the new cloud fraction scheme is used, we could wrap all code that writes to or reads from those files in if (icloud==3)

physics/GFS_rrtmg_pre.F90 Outdated Show resolved Hide resolved
physics/GFS_rrtmg_pre.F90 Outdated Show resolved Hide resolved
physics/radiation_clouds.f Outdated Show resolved Hide resolved
physics/radiation_clouds.f Outdated Show resolved Hide resolved
physics/radiation_clouds.f Outdated Show resolved Hide resolved
@gthompsnWRF
Copy link
Collaborator Author

@gthompsnWRF we didn't add the logic to use the six new diagnostic variables only if a corresponding debug switch is enabled. I think we should do that to reduce the memory footprint. If those variables are only of interest if Thompson MP and the new cloud fraction scheme is used, we could wrap all code that writes to or reads from those files in if (icloud==3)

I agree that a debug switch could help in this regard, but I added those variables for usage by any cloud fraction or microphysics scheme in mind, so I believe they are useful regardless. The total_albedo is sorely needed as a simple way to visualize cloud reflectance (during daytime) as compared to fluxes. The explicit versus non-explicit water and ice paths for radiation are useful for anyone and 2-D arrays don't add too much memory as compared to many other 2D arrays being output. Your decision ultimately, but seems trivial to add 6 2D arrays (x,y) for a model with hundreds? of other 2D arrays (IMHO).

@climbfuji
Copy link
Collaborator

@gthompsnWRF we didn't add the logic to use the six new diagnostic variables only if a corresponding debug switch is enabled. I think we should do that to reduce the memory footprint. If those variables are only of interest if Thompson MP and the new cloud fraction scheme is used, we could wrap all code that writes to or reads from those files in if (icloud==3)

I agree that a debug switch could help in this regard, but I added those variables for usage by any cloud fraction or microphysics scheme in mind, so I believe they are useful regardless. The total_albedo is sorely needed as a simple way to visualize cloud reflectance (during daytime) as compared to fluxes. The explicit versus non-explicit water and ice paths for radiation are useful for anyone and 2-D arrays don't add too much memory as compared to many other 2D arrays being output. Your decision ultimately, but seems trivial to add 6 2D arrays (x,y) for a model with hundreds? of other 2D arrays (IMHO).

The problem is that every other PR does the same and suddenly you have 5 times 6 new 2D arrays etc. I hate introducing another debug flag, though, and given that these arrays could be useful for other schemes, too, let's leave it as is.

@climbfuji
Copy link
Collaborator

This PR was pulled into #795. It will be merged (and automatically closed) when #795 gets merged.

…educe assumed snow as ice in IWP for radiation
@AnningCheng-NOAA
Copy link
Collaborator

approved. I have tested the new Thompson cloud fraction many times.

climbfuji added a commit that referenced this pull request Dec 10, 2021
…on_with_ruiyu_cloud_cover_change_xu_randall

Wrapper PR for #781 (New Thompson cloud fraction) and #800 (Remove Laurie from CODEOWNERS)
@climbfuji climbfuji merged commit 2fa7965 into NCAR:main Dec 10, 2021
davegill pushed a commit to wrf-model/WRF that referenced this pull request Jan 20, 2022
…-MP and icloud3 (cloud fraction) scheme (#1626)

TYPE: enhancement

KEYWORDS: microphysics, clouds, cloud fraction, Thompson microphysics

SOURCE:  Greg Thompson (UCAR/Joint Center for Satellite Data Assimilation)

DESCRIPTION OF CHANGES:
The purpose of these changes is to produce better cloud coverage and radiation amounts per tuning done with 
GFS global model and comparisons to observations.

Problem:
The Thompson-MP code (from ccpp-physics) has been used within UFS/GFS/FV-3 global model for multiple 
day simulations.  Anning Cheng and Ruiyu Sun (NCEP/EMC) have performed most of the simulations and 
analysis and iterated with me to make adjustments to the Thompson-MP.  At first, EMC found that high 
clouds were not present enough, particularly in the tropics.  Once switching to a larger upper limit of cloud 
ice before it becomes snow, the cloud amounts improved but some clouds and radiation balances were still 
not matching results from FV3's GFDL microphysics (which had already been tuned to observations).  
Therefore an effort to account for subgrid-scale clouds using the cloud fraction scheme (icloud=3) was 
adopted to GFS and tested with various parameter settings.

Solution:
The biggest change is in how cloud ice converts to snow at a threshold size of 300 microns (up from 200 
microns) and for rimed snow to convert to graupel (changed from 250 to 350 microns).  A change to allowed 
max size of ice means that the fall velocity constant for ice was changed to keep it aligned with snow at the 
same cut-over size (of 300 microns).  In addition, the cloud fraction scheme (icloud=3) can further improve 
the clouds and radiation together with Thompson-MP due to the overall under-prediction of clouds.  The 
icloud3 option was also making far too many clouds when compared to observations so its tuning knobs 
were adjusted until attaining the following overall improvements compared to cloud and radiation global 
climatologies that EMC uses:  cloud amounts of low, middle, high, and total cloud coverage, longwave 
radiation outgoing at top-of-atmosphere, and shortwave radiation reaching the ground.

ISSUE:  
There are corresponding issues or pull requests in the ccpp-physics repo, 
[778](NCAR/ccpp-physics#778)
[781](NCAR/ccpp-physics#781)
[809](NCAR/ccpp-physics#809)

LIST OF MODIFIED FILES: 
M  module_mp_thompson.F
M  module_radiation_driver.F
M  module_ra_rrtmg_lw.F
M  module_ra_rrtmg_lwf.F
M  module_ra_rrtmg_sw.F
M  module_ra_rrtmg_swf.F

TESTS CONDUCTED: 
1. A series of tests in GFS including 5, 7, 16, and 30-day long simulations compared to known cloud and 
radiation climatologies. The plots attached here in this comment were created by Anning Cheng. The numbers 
at the top of each panel represent global 3-day (days 3, 4, 5) average.

The first plot is the high/mid/low/total cloud amount.  The tunings in this PR reduced the high cloud amount 
from over 55% down to the low 40s, which matches observations of global cloud coverage pretty well.  And, 
another comparison is without the cloud fraction scheme, the mid-level clouds (and low/high) are simply less 
than observations, which is something well published in IPCC reports of global model clouds, especially the 
Southern Ocean and east sides of ocean basins (low stratus).
![gfnl_cf_20190611](https://user-images.githubusercontent.com/35609171/149175845-585914ce-84d4-4d72-a7e2-e96a5cb9d228.png)

The next plot's panel (a) shows the outgoing longwave radiation.  The target value global average is about 
240 W/m2.  Without the cloud fraction scheme and changes to ```D0s``` and ```D0g```, the result would be 
too much outgoing longwave since it will not contain enough clouds at lower temperatures.  Also, the older 
version of the cloud fraction scheme with its excessive amount of high clouds would make the outgoing 
radiation closer to 225 W/m2.  So the tuning of the scheme brings the results closer to observations.

![gfnl_prcp_20190611](https://user-images.githubusercontent.com/35609171/149176400-41f8b655-3d58-4cc4-adb0-6f6037beed52.png)

Lastly, the final plot shows the downward longwave reaching the ground (panel c) and downward shortwave 
reaching the ground (panel d). 

![gfnl_sfc_SWLW_20190611](https://user-images.githubusercontent.com/35609171/149177060-964ce8bd-02dc-4359-ad5d-37502b2d0f70.png)

2. Jenkins tests are passing.

RELEASE NOTE: Update of the Thompson microphysics scheme and cloud fraction scheme (icloud=3) to match the observations better. The modifications include updates to RRTMG LW and SW, and RRTMG fast LW and SW.
vlakshmanan-scala pushed a commit to scala-computing/WRF that referenced this pull request Apr 4, 2024
…-MP and icloud3 (cloud fraction) scheme (wrf-model#1626)

TYPE: enhancement

KEYWORDS: microphysics, clouds, cloud fraction, Thompson microphysics

SOURCE:  Greg Thompson (UCAR/Joint Center for Satellite Data Assimilation)

DESCRIPTION OF CHANGES:
The purpose of these changes is to produce better cloud coverage and radiation amounts per tuning done with 
GFS global model and comparisons to observations.

Problem:
The Thompson-MP code (from ccpp-physics) has been used within UFS/GFS/FV-3 global model for multiple 
day simulations.  Anning Cheng and Ruiyu Sun (NCEP/EMC) have performed most of the simulations and 
analysis and iterated with me to make adjustments to the Thompson-MP.  At first, EMC found that high 
clouds were not present enough, particularly in the tropics.  Once switching to a larger upper limit of cloud 
ice before it becomes snow, the cloud amounts improved but some clouds and radiation balances were still 
not matching results from FV3's GFDL microphysics (which had already been tuned to observations).  
Therefore an effort to account for subgrid-scale clouds using the cloud fraction scheme (icloud=3) was 
adopted to GFS and tested with various parameter settings.

Solution:
The biggest change is in how cloud ice converts to snow at a threshold size of 300 microns (up from 200 
microns) and for rimed snow to convert to graupel (changed from 250 to 350 microns).  A change to allowed 
max size of ice means that the fall velocity constant for ice was changed to keep it aligned with snow at the 
same cut-over size (of 300 microns).  In addition, the cloud fraction scheme (icloud=3) can further improve 
the clouds and radiation together with Thompson-MP due to the overall under-prediction of clouds.  The 
icloud3 option was also making far too many clouds when compared to observations so its tuning knobs 
were adjusted until attaining the following overall improvements compared to cloud and radiation global 
climatologies that EMC uses:  cloud amounts of low, middle, high, and total cloud coverage, longwave 
radiation outgoing at top-of-atmosphere, and shortwave radiation reaching the ground.

ISSUE:  
There are corresponding issues or pull requests in the ccpp-physics repo, 
[778](NCAR/ccpp-physics#778)
[781](NCAR/ccpp-physics#781)
[809](NCAR/ccpp-physics#809)

LIST OF MODIFIED FILES: 
M  module_mp_thompson.F
M  module_radiation_driver.F
M  module_ra_rrtmg_lw.F
M  module_ra_rrtmg_lwf.F
M  module_ra_rrtmg_sw.F
M  module_ra_rrtmg_swf.F

TESTS CONDUCTED: 
1. A series of tests in GFS including 5, 7, 16, and 30-day long simulations compared to known cloud and 
radiation climatologies. The plots attached here in this comment were created by Anning Cheng. The numbers 
at the top of each panel represent global 3-day (days 3, 4, 5) average.

The first plot is the high/mid/low/total cloud amount.  The tunings in this PR reduced the high cloud amount 
from over 55% down to the low 40s, which matches observations of global cloud coverage pretty well.  And, 
another comparison is without the cloud fraction scheme, the mid-level clouds (and low/high) are simply less 
than observations, which is something well published in IPCC reports of global model clouds, especially the 
Southern Ocean and east sides of ocean basins (low stratus).
![gfnl_cf_20190611](https://user-images.githubusercontent.com/35609171/149175845-585914ce-84d4-4d72-a7e2-e96a5cb9d228.png)

The next plot's panel (a) shows the outgoing longwave radiation.  The target value global average is about 
240 W/m2.  Without the cloud fraction scheme and changes to ```D0s``` and ```D0g```, the result would be 
too much outgoing longwave since it will not contain enough clouds at lower temperatures.  Also, the older 
version of the cloud fraction scheme with its excessive amount of high clouds would make the outgoing 
radiation closer to 225 W/m2.  So the tuning of the scheme brings the results closer to observations.

![gfnl_prcp_20190611](https://user-images.githubusercontent.com/35609171/149176400-41f8b655-3d58-4cc4-adb0-6f6037beed52.png)

Lastly, the final plot shows the downward longwave reaching the ground (panel c) and downward shortwave 
reaching the ground (panel d). 

![gfnl_sfc_SWLW_20190611](https://user-images.githubusercontent.com/35609171/149177060-964ce8bd-02dc-4359-ad5d-37502b2d0f70.png)

2. Jenkins tests are passing.

RELEASE NOTE: Update of the Thompson microphysics scheme and cloud fraction scheme (icloud=3) to match the observations better. The modifications include updates to RRTMG LW and SW, and RRTMG fast LW and SW.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants